Search

之前打通關實體系列課的 Jim,入手 Classic TDD 無限次播放影音培訓,練習一小段之後的感...

  • Share this:

之前打通關實體系列課的 Jim,入手 Classic TDD 無限次播放影音培訓,練習一小段之後的感想。

TDD 就是一種控制開發節奏、隨心所欲控制開發步伐大小的開發方式,以終為始,一樣要有事前的規劃,應對變化,以產出可用的軟體功能為目標,剛剛好的簡單設計(很難啊)

在學習練習的過程中,學會小顆粒度切分需求、功能、情境、任務,是很重要的基本功。因為當你有能力把顆粒度切到極小,且都用工具來輔助產生、重構與巡覽時,你就可以練到接近肌肉反射的動作,這是實務上要作到「又快又好」得經過千錘百鍊的基本功。

關於 TDD 的應用,我總喜歡打個比方:
「在陌生的城市裡開著車,天氣狀況也不太穩定,我們透過導航來幫助我們,先定義好目的地,然後每一段路導航都會告訴你,接下來多久之後應該要轉彎,走錯路時,導航會第一時間提醒你,迴轉、換路線。

路況不好時,慢慢開,天氣好、路況好、路線清楚,就邁開步伐開,有導航在,開錯路第一時間會知道要再放慢速度、暫停一下,看看下一段路該怎麼走。」

心細的你會留意到,「這樣的黑箱角度,根本還沒提到你該怎麼開車」,TDD 如果是從程式碼切入(包含 test code),而不是從需求、使用情境來切入,就完全失去它最大的價值了。

這也是為啥,我一直強調,TDD 不是只有 test-first,test-first 只是順便、順理成章的產物,而不是主要目的或是儀式。

用測試來描述需求、描述使用情境、描述使用產品功能期望發生的結果,這才是在滿足商業需求、解決問題的切入點,也是我們最終目標。

註:【Google表單預購】優惠,只至 7/24 截止。觀望的同學,再不出手,多等幾天就差幾千塊啦。https://hackmd.io/@SYvyb1O4SLq8W6nvAQW5mw/ByVVUt86O


Tags:

About author
我是 Joey Chen,闖蕩江湖的稱號是 91,熱血點火師,專門燃起大家心裡面的熱情與初衷。 目前為 Odd-e Taiwan 的負責人,同時也是 JetBrains 在台灣的培訓夥伴,至今也仍是熱愛學習與享受各種程式語言之美的 programmer。 身為敏捷教練,擅長 Agile、Scrum、LeSS 等敏捷文化與協作框架的落實與導入,如何讓大家 being agile 而不是 doing agile。同時喜歡結合各家所長,例如 Lean, Kanban 等,重點是持續改善、解決問題、端出成果,而不執著於某種特定方法論或框架。 身為技術教練,我也是極限編程(extreme programming)的狂熱者,我擅長用這些技術與工程實踐來提昇產品的品質、團隊的生產力、降低營運風險,因應市場與公司的商業目標,讓團隊能具有高適應與反應能力的基礎建設。例如 實例化需求、ATDD、BDD、TDD、重構、自動化單元測試/整合測試/驗收測試、CI/CD、code review、pair programming、mob-programming 等等。 同時,我也是推崇 極速開發 的 developer,追求從想法到產品程式碼的完成,中間的時間差能趨近於零,也就是劍隨心轉,想到哪,程式碼就長到哪的境界。從想法到實現中間的等待,其實在實務上佔了很大的 context switch 成本,如果能讓這段時間縮到最短,就能比其他人多嘗試更多種解決方案,進而挑選出最剛好的方案。 同時也是技術社群的活躍份子,從 2010 年開始連任九屆的微軟 MVP,兼任 MSDN 論壇板主,也曾經獲得年度 MSDN 文件庫刊登數量世界第一的榮耀。對微軟技術有愛,對 C# 有愛,對自動測試有愛,對重構與設計模式有愛。近年來對 Java, PHP, Python 也充滿濃厚的興趣,曾帶領客戶團隊中不會寫程式的 QA ,一起用 Python 完成超過百個 mobile UI 自動化測試。 擁有超過十年擔任開發團隊 tech leader, trainer, coach 與 mentor 的經驗,進行的企業內部與公開技術培訓課程已超過 100 場,培訓過的開發人員超過 1000 位,擔任研討會與社群活動的講師次數超過 30 次。 同時也是技術書籍的作者與譯者,與朋友合著的書籍包含《ASP.NET MVC 5:網站開發美學》、《ASP.NET MVC 4 網站開發美學》,翻譯的書籍有《單元測試的藝術-第二版》、《敏捷開發實踐》、《進入IT產業必讀的200個 .NET面試決勝題》。 如果想跟我即時互動,歡迎直接私訊或 email 至 [email protected]
請參考:https://tdd.best/about/
View all posts